1. Field of the Invention
The present invention relates to on-line transaction systems, and particularly to a transaction interface system for interfacing user interactive devices with a transaction execution system in a distributed network environment, and more particularly to a transaction interface system having an unified architecture which is compatible with existing transaction execution systems. The present invention also relates to the development of an enterprise system based on the unified architecture.
2. Description of Related Art
The dramatic growth of the information highway and network-centric computing significantly altered the way people conduct business transactions. For example, on-line transactions are becoming ubiquitous. A user may use a personal computer to access a company's transaction execution system to request and carry out a desired transaction. With the explosion of the World Wide Web and Internet technologies, on-line transactions are made more widely accessible to users. The conveniences of on-line business transactions have driven companies from across a broad spectrum of businesses to provide customers with the option of conducting on-line transactions.
The demand and ubiquity of on-line transactions fueled the development of various sophisticated transaction execution systems and related transaction application systems. With the availability of increasingly more powerful processors, many applications are designed to run on smaller scale network computer systems generally referred to as client-server systems. However, in the past, the transaction execution applications and transaction applications had been designed as dedicated systems which did not offer the flexibility of allowing easy addition of new features, and compatibility and interoperability with other applications.
For example, when a company having an existing transaction execution system wished to provide for user access for transaction via the Internet, an entirely new protocol had to be provided to interface the Internet with the existing transaction execution application. This required developing a new application or making significant modifications to the existing transaction execution application, and integration of the Internet interface into such modified transaction execution application. When it comes time to add another feature to the modified transaction execution system, additional modifications and integration into the transaction execution application would be required. Moreover, the Internet based interface of one transaction execution system is not compatible with another transaction execution system.
There are several drawback associated with having to develop new applications or make modifications to existing applications. The direct costs for making the modifications or developing a new application can be relatively high, especially in the case when a company undertakes to make modifications to an antiquated legacy system. Further, significant time and resource must be spent on debugging the entire new or modified transaction execution application to confirm its integrity. There is always the risk of discovering additional bugs in the new or modified application after it has been put into active service. Such new bugs may cause significant downtime of the transaction system to allow for debugging and bug fixing. More critically, the bugs may create irreversible errors in the execution of the transactions, which may proceed undetected until significant damages have been caused. For example in the financial industry, and more particularly in the securities trading business, an error in executing an on-line trade could have ramifications that cannot be reversed when the error is eventually detected several hours or days later.
The reason for the lack of compatibility of current transaction applications is partly due to the lack of an infrastructure in the past to allow development and deployment of large-scale, interactive applications on distributed networks, such as Intranets, Extranets, and the Internet. Specifically, in current implementations of Internet systems, Web servers route discrete requests from multiple browsers to the requested applications and databases. These discrete requests are received by the system as a series of unconnected “hits”. This is due to a problem that generally exists in the Internet environment known as a lack of “application state”. Without an application state, a system cannot track a user's prior actions, and it loses track of which requests came from which user. Moreover, the numerous variables required by the application in each instance of the program cannot be efficiently maintained in the Internet environment. (For example, while a request for a stock quote requires a single query to a database of current share prices, the manipulation of sales information for a customized report may involve a large number of variables and multiple queries to the database.) These problems are exacerbated when one visualizes a Web site or Internet system with hundred or thousands of simultaneous users, whereby multiple instances of an application may run concurrently. Until now, the lack of an application state in the Internet environment has prevented the deployment of sophisticated applications, which require tracking a user's actions throughout the entire program in the Internet environment. This has also lead to development of a variety of convoluted methods for making applications written in existing languages or for legacy environments work in the Internet environment.
Further, in the past, some developments cannot be carried out using technology the developers already owned, programming languages they already knew, and programming techniques they already understood. As a result, the development and maintenance costs in prior systems are relatively high. For example, there is a large market of corporate developers that do not feel comfortable developing new Web-based applications because they do not have the right systems in place to help them to do so. However, companies are hard pressed to develop such systems because of the competitive pressures and general advantages of the technology. Companies that start developing the Web systems in the absence of programming talent in-house are faced with the choice of significant time delay because of retraining of their people, or a significant expense of hiring new personnel or outsourcing.